package com.zmn.plat.services.interfaces.part;

import java.util.List;

import com.zmn.common.dto.VtDTO;
import com.zmn.mcc.cas.model.LoginStaff;
import com.zmn.plat.model.dto.part.PartSkuDTO;
import com.zmn.plat.model.entity.part.PartSku;
import com.zmn.plat.model.entity.part.PartSkuQuery;
import com.zmn.plat.model.vo.part.PartSkuVO;

/**
 * 类描述： PartSkuService 该类增改时应该刷新updateTime、updater信息
 *
 * @author DaiZhichao
 * @since 2018/10/26 12:44
 */

public interface PartSkuService {
    PartSku findByKey(Integer skuId);

    PartSkuVO findVOByKey(Integer skuId);

    PartSkuDTO findPartDTOById(Integer skuId);

    List<PartSkuDTO> listPartDTOByIds(List<Integer> ids);

    List<PartSku> listPageByQuery(PartSkuQuery query);

    List<PartSkuVO> listVOPageByQuery(PartSkuQuery query);

    List<VtDTO> listByText(String text);

    List<VtDTO> listVtDTOByQuery(PartSkuQuery query);

    List<PartSku> listByQuery(PartSkuQuery query);

    Integer countByQuery(PartSkuQuery query);

    Integer updateByKey(PartSku partSku, LoginStaff staff);

    /**
     * 描述:修改状态
     *
     * @param skuId
     *            配件ID
     * @param status
     *            状态
     * @param staff
     *            操作人对象
     * @return Integer 数据库变更条数
     * @author DaiZhichao
     * @since 2018/12/12 15:14
     */
    Integer updateStatus(Integer skuId, Integer status, LoginStaff staff);

    /**
     * 描述:批量修改状态
     *
     * @param skuIdList
     *            配件ID列表
     * @param status
     *            状态
     * @param staff
     *            操作人对象
     * @return Integer 数据库变更条数
     * @author DaiZhichao
     * @since 2018/12/12 15:14
     */
    Integer updateStatusBatch(List<Integer> skuIdList, Integer status, LoginStaff staff);

    /**
     * 描述:修改排序，不会触发updater的更改
     *
     * @param partSku
     *            PartSku
     * @return Integer
     * @author DaiZhichao
     * @since 2018/10/26 12:45
     */
    Integer updateSort(PartSku partSku);

    /**
     * 描述:添加配件
     *
     * @param partSku
     *            PartSku
     * @return Integer 数据库变更条数
     * @author DaiZhichao
     * @since 2018/10/26 12:45
     */
    Integer insert(PartSku partSku, LoginStaff staff);

}
